package nl.moviefan.site.service;

import java.util.List;
import nl.moviefan.site.model.Artikel;
import nl.moviefan.site.model.MoviefanUser;
import nl.moviefan.site.model.Recensie;
import nl.moviefan.site.repository.RecensieRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class RecensieService {

    @Autowired
    RecensieRepository recensieRepository;

    public List<Recensie> getAll() {
        List<Recensie> beoordelingen = recensieRepository.findAll();
        return beoordelingen;
    }

    public Recensie getById(long id) {
        Recensie recensie = null;
        if (recensieRepository.exists(id)) {
            recensie = recensieRepository.findOne(id);
        }
        return recensie;
    }

    public List<Recensie> getByArtikel(Artikel a) {
        List<Recensie> recensies = recensieRepository.findByArtikel(a);
        return recensies;
    }

    public Recensie saveRecensie(Recensie recensie) {
        return recensieRepository.save(recensie);
    }

    public boolean checkIfUnique(MoviefanUser mu, Artikel a) {
        boolean result = false;
        List<Recensie> b = null;
        b = this.recensieRepository.findByMoviefanUserAndArtikel(mu, a);
        if (b.isEmpty()) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }

    public List<Recensie> getAllRecensiesByUser(MoviefanUser mu) {
        return recensieRepository.findByMoviefanUser(mu);
    }
}
